#ifndef P_UUID_H
#define P_UUID_H

#include "PiccoloEngine.h"

namespace Piccolo
{
    class PUUID
    {
    public:
        PUUID();
        PUUID(int32_t uuid);
        PUUID(const PUUID&) = default;

        operator uint32_t() const { return mUUID; }

        uint64_t mUUID;
    };
}

namespace std
{
    template<>
    struct hash<Piccolo::PUUID>
    {
        std::size_t operator()(const Piccolo::PUUID& uuid) const
        {
            if (!uuid) return 0;
            return (uint32_t) uuid;
        }
    };
}

#endif